package Method;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/8/19 11:18
 * 方法：提高复用性
 * 方法定义：
 * public static 返回值类型 方法名（参数列表）｛
 * ......//方法体
 * return 返回值；
 * ｝
 * 方法调用：
 * 调用方法>传递参数>执行具体的方法
 * 方法的参数传递只有 值传递
 * 在java中无论形参和实参的类型是什么，实参的值永远是拷贝一份赋值给形参，
 * 形参和实参本质上是两个不同的实体，形参实参彼此不影响
 * 实参：具体调用某个方法时，向方法传递的参数称之为实参
 */
public class MethodDemo {
    public static void main(String[] args) {
  /*      int a= 10;
        int b =20;
        System.out.println("第一次调用add之前。。");
        int ret = add(a,b);
        System.out.println("第一次调用add之后。。");
        System.out.println("ret = "+ret);
        System.out.println("第二次调用add之前。。");
        ret = add(a,b);
        System.out.println("第二次调用add之后。。");
        System.out.println("ret = "+ret);*/
        int x = 10;
        int y = 20;
        swap(x,y);
        System.out.println("main中,x = "+x+",y = "+y);

    }
//swap中，x,y形参-----
    public static void swap(int x, int y) {
        int tem = x;
        x = y;
        y = tem;
        System.out.println("swap中,x = " + x + ",y = " + y);
    }

    public static int add(int num1, int num2) {
        System.out.println("调用add中。。num1 = " + num1 + ",num2 = " + num2);
        return num1 + num2;
    }

    public static boolean isPrime(int year) {
        if (year % 100 == 0) {
            //判断世纪闰年
            if (year % 400 == 0) {
                return true;
            } else {
                return false;
            }
        } else {
            if (year % 4 == 0) {
                return true;
            } else {
                return false;
            }
        }
    }

    public static int factor(int num) {
        if (num == 1) {
            return 1;
        }
        return num * factor(num - 1);
    }
}
